#include "fat.h"
#include "Volumen.h"

int leerCluster(uint32_t clusterALeer, t_Cluster * buffer,t_FAT32BootSector bootsector){
	t_Sector sector;
	t_Cluster cluster;
	uint32_t i,e;
	uint32_t clusterFirstSector=clusterALeer*bootsector.secPerClus;
	uint32_t sectorSize= bootsector.bytesPerSec ;
	for (i = e = 0 ; i < bootsector.secPerClus ; i++) {
		//leerDisco con o sin sockets para que devuelva lo q tiene el sector
		disk_readSector(clusterFirstSector + i,&sector);
		//Ir apilandolo en el buffer y devolver el buffer
		e = i * sectorSize;
		memcpy(&(cluster[e]), &sector,sectorSize);
	};
	memcpy(&buffer,&cluster,sizeof(t_Cluster));

	return 1;
}

int escribirCluster(uint32_t clusterAEscribir, t_Cluster * data, t_FAT32BootSector bootsector){
	t_Sector sector;
	t_Cluster cluster;
	uint32_t i,e;
	int n;
	uint32_t clusterFirstSector = clusterAEscribir*bootsector.secPerClus;
	uint32_t sectorSize= bootsector.bytesPerSec ;
	for (i = e = 0 ; i < bootsector.secPerClus ; i++) {
		if(!(n = disk_writeSector(clusterFirstSector + i,&data[e])))
			return n;
		e = i * sectorSize;
	};
	return 1;
}
